package com.developmentReformProject.dto;

import com.developmentReformProject.enums.ProjectSpecificTypeEnum;
import com.developmentReformProject.enums.ProjectTypeEnum;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

public class ApplyQueryDto implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 项目编号
     */
    private Integer projectNo;
    /**
     * 五年项目库中的编号
     */
    private Integer fiveProjectNo;
    /**
     * 三年项目库中编号
     */
    private Integer threeProjectNo;
    /**
     * 审核项目名
     */
    private String applyName;
    /**
     * 企业编号
     */
    private Integer enterpriseId;
    /**
     * 项目类型
     */
    private String projectType;
    /**
     *项目预计投资规模
     */
    private Double investment;
    /**
     * 项目预计经济收益
     */
    private Double revenue;
    /**
     * 项目预计开工时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date startTime;
    /**
     * 项目生命周期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date lifeCycle;
    /**
     * 项目任务书
     */
    private String projectAssignmentPaper;
    /**
     * 项目具体类型
     */
    private String specificType;
    /**
     * 项目地址
     */
    private String projectAddress;
    /**
     * 审核状态
     */
    private String auditStatus;
    /**
     * 审核人
     */
    private String reviewer;
    /**
     * 经济收益分析
     */
    private String revenueAnalysis;
    /**
     * 审核时间
     */
    private String auditTime;
    /**
     * 审核项目状态（0-已删除 1-正常）
     */
    private Integer projectStateId;
    /**
     * 审核意见
     */
    private String auditOpinion;
    /**
     * 当前页
     */
    private Integer currentPage;
    /**
     * 页面大小
     */
    private Integer pageSize;
    private String projectTypeDesc;
    private String specificTypeDesc;
    private String auditStatusDesc;


    public String getProjectTypeDesc() {
        return ProjectTypeEnum.valueToDESC(this.projectType);
    }

    public String getSpecificTypeDesc() {
        return ProjectSpecificTypeEnum.valueToDESC(this.specificType);
    }


    public Integer getProjectNo() {
        return projectNo;
    }

    public void setProjectNo(Integer projectNo) {
        this.projectNo = projectNo;
    }

    public Integer getFiveProjectNo() {
        return fiveProjectNo;
    }

    public void setFiveProjectNo(Integer fiveProjectNo) {
        this.fiveProjectNo = fiveProjectNo;
    }

    public Integer getThreeProjectNo() {
        return threeProjectNo;
    }

    public void setThreeProjectNo(Integer threeProjectNo) {
        this.threeProjectNo = threeProjectNo;
    }

    public String getApplyName() {
        return applyName;
    }

    public void setApplyName(String applyName) {
        this.applyName = applyName;
    }

    public Integer getEnterpriseId() {
        return enterpriseId;
    }

    public void setEnterpriseId(Integer enterpriseId) {
        this.enterpriseId = enterpriseId;
    }

    public String getProjectType() {
        return projectType;
    }

    public void setProjectType(String projectType) {
        this.projectType = projectType;
    }

    public Double getInvestment() {
        return investment;
    }

    public void setInvestment(Double investment) {
        this.investment = investment;
    }

    public Double getRevenue() {
        return revenue;
    }

    public void setRevenue(Double revenue) {
        this.revenue = revenue;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getLifeCycle() {
        return lifeCycle;
    }

    public void setLifeCycle(Date lifeCycle) {
        this.lifeCycle = lifeCycle;
    }

    public String getProjectAssignmentPaper() {
        return projectAssignmentPaper;
    }

    public void setProjectAssignmentPaper(String projectAssignmentPaper) {
        this.projectAssignmentPaper = projectAssignmentPaper;
    }

    public String getSpecificType() {
        return specificType;
    }

    public void setSpecificType(String specificType) {
        this.specificType = specificType;
    }

    public String getProjectAddress() {
        return projectAddress;
    }

    public void setProjectAddress(String projectAddress) {
        this.projectAddress = projectAddress;
    }

    public String getAuditStatus() {
        return auditStatus;
    }

    public void setAuditStatus(String auditStatus) {
        this.auditStatus = auditStatus;
    }

    public String getReviewer() {
        return reviewer;
    }

    public void setReviewer(String reviewer) {
        this.reviewer = reviewer;
    }

    public String getRevenueAnalysis() {
        return revenueAnalysis;
    }

    public void setRevenueAnalysis(String revenueAnalysis) {
        this.revenueAnalysis = revenueAnalysis;
    }

    public String getAuditTime() {
        return auditTime;
    }

    public void setAuditTime(String auditTime) {
        this.auditTime = auditTime;
    }

    public Integer getProjectStateId() {
        return projectStateId;
    }

    public void setProjectStateId(Integer projectStateId) {
        this.projectStateId = projectStateId;
    }

    public String getAuditOpinion() {
        return auditOpinion;
    }

    public void setAuditOpinion(String auditOpinion) {
        this.auditOpinion = auditOpinion;
    }

    public Integer getCurrentPage() {
        return currentPage;
    }

    public void setCurrentPage(Integer currentPage) {
        this.currentPage = currentPage;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }
}
